package com.bw.message.model

import com.bw.message.ApiService
import dagger.Module
import dagger.Provides
import dagger.hilt.InstallIn
import dagger.hilt.components.SingletonComponent
import okhttp3.OkHttpClient

import retrofit2.Retrofit
import java.util.concurrent.TimeUnit
import javax.inject.Singleton
// 定义一个模块，用于提供消息相关的依赖项
@Module
@InstallIn(SingletonComponent::class)
object MessageModule {

    // 提供 ApiService 实例，该实例是通过 Retrofit 创建的
    @Provides
    @Singleton
    fun getMessageApiService(retrofit: Retrofit):ApiService =retrofit.create(ApiService::class.java)

    // 提供 MessageRepo 实例，该实例依赖于 ApiService
    @Provides
    @Singleton
    fun getMessageRepo(apiService: ApiService):MessageRepo{
        return  MessageRepo(apiService)
    }


}
// 定义一个模块，用于提供 WebSocketManager 的依赖项
@Module
@InstallIn(SingletonComponent::class)
object WebSocketManagerModule {
    // 提供 WebSocketManager 实例，该实例依赖于 OkHttpClient
    @Provides
    @Singleton
    fun provideWebSocketManager(okHttpClient: OkHttpClient): WebSocketManager {
        return WebSocketManager(okHttpClient) // 使用已提供的实例
    }
}
